Dieses Dokument spezifiziert die Erstellung und das Format von Trip-Kit-Dateien im AIP Browser DE.

Important
Diese neue Version ist noch in Arbeit und noch nicht vollständig!

1. Definition

Ein Trip-Kit im Sinne dieses Dokuments ist eine Zusammenstellung von Resourcen (aus der AIP und evtl. zusätzlichen Quellen) für ein bestimmtes Flugvorhaben.

2. Resourcen

Resourcen sind ganze Seiten der AIP, Teile davon und zusätzliche, manuell hinzugefügte Informationen und Geodaten.

3. Anwendungsfälle

Ein Trip-Kit kann für verschiedene Anwendungsfälle dienen, was Konsequenzen sowohl für den Inhalt als auch die Art der Zusammenstellung hat.

3.1. Zusammenstellung von georeferenzierten Karten für die Darstellung auf einer Moving Map

Die georeferenzierten Anflugkarten können in der Kategorie charts/ gespeichert werden.

  • Eine darin enthaltene Datei mit dem Namen charts_toc.json beschreibt die verfügbaren Karten.

  • Eine darin enthaltene Datei mit dem Namen covered_charts_area.geojson beschreibt die abgedeckte Fläche im GeoJSON Format.

3.2. Zusammenstellung von ganzen Seiten oder Teilen davon als chronologisches Dokument zur Beschreibung des Flugvorhabens

Die ganzen Seiten können in der Kategorie pages/ gespeichert werden.

  • Eine darin enthaltene Datei mit dem Namen pages_toc.json beschreibt die verfügbaren Seiten.

4. Art der Zusammenstellung

Der Container für den Austausch zwischen verschiedenen Geräten ist eine ZIP-Datei mit einem Inhaltsverzeichnis auf oberster Ebene. Die Struktur ist fest vorgegeben aber es brauchen nur die Teile davon exportiert zu werden, die auch benötigt werden. Wenn z.B. kein Bedarf an den ganzen Seiten besteht dann brauchen diese (pages/) auch nicht exportiert zu werden. Ein Leser sollte auch so flexibel sein, dass er neue, bisher unbekannte Teile einfach ignoriert und dies nicht als Fehler betrachtet.

4.1. ZIP-Datei

4.1.1. Struktur der ZIP-Datei

toc.json
charts/
   charts_toc.json
   covered_charts_area.geojson
   EDKA Aachen-Merzbrueck 1-geo.webp
   ...
pages/
   pages_toc.json
   ...

4.1.2. Beispiel einer TOC-Datei (toc.json)

{
    "version": "1.0.0",
    "name": "Hahnweide to Aachen",
    "description": "A trip from Hahnweide to Aachen via Speyer and Koblenz",
    "creationIsoDateTime": "2023-08-23T10:11:29.683658Z"
}

4.1.3. Beispiel einer charts TOC-Datei (charts_toc.json)

{
    "version": "1.0.0",
    "charts": [
        {
            "name": "EDDF Frankfurt Main 2",
            "filePath": "charts/EDDF Frankfurt Main 2.tiff",
            "effectiveIsoDate": "2023-07-27",
            "modifIsoDate": "2021-08-26",
            "checksumAlgorithm": "SHA-256",
            "checksumHexValue": "18b0eda062f233fca00ccb417e26dd112e0cbd790d6968dcbed20eed8c8f6055",
            "invScale": 75000,
            "geoCorners": {
                "upperLeft": {
                    "longitude": 8.48936170212766,
                    "latitude": 50.08356164383562
                },
                "lowerLeft": {
                    "longitude": 8.48936170212766,
                    "latitude": 49.9990296803653
                },
                "lowerRight": {
                    "longitude": 8.61968085106383,
                    "latitude": 49.9990296803653
                },
                "upperRight": {
                    "longitude": 8.61968085106383,
                    "latitude": 50.08356164383562
                }
            }
        },
        {
            "name": "EDDK Koeln Bonn 2",
            "filePath": "charts/EDDK Koeln Bonn 2.tiff",
            "effectiveIsoDate": "2023-07-27",
            "modifIsoDate": "2022-03-10",
            "checksumAlgorithm": "SHA-256",
            "checksumHexValue": "fe9c5144480d7c5dd0502cd9d95001b8e82e36ba4f3bfa0e3fe9a1c777324710",
            "invScale": 50000,
            "geoCorners": {
                "upperLeft": {
                    "longitude": 7.091990364348088,
                    "latitude": 50.89359559103003
                },
                "lowerLeft": {
                    "longitude": 7.091990364348088,
                    "latitude": 50.8427023945268
                },
                "lowerRight": {
                    "longitude": 7.180457693465824,
                    "latitude": 50.8427023945268
                },
                "upperRight": {
                    "longitude": 7.180457693465824,
                    "latitude": 50.89359559103003
                }
            }
        },
        ...
    ]
}

4.1.4. Beispiel einer pages TOC-Datei (pages_toc.json)

{
    "version": "1.0.0",
    "filePaths": [
        "pages/Stuttgart EDDS.pdf",
        "pages/Herrenteich EDEH.pdf",
        "pages/Heppenheim EDEP.pdf",
        "pages/Wallduern EDEW.pdf",
        ...
        "pages/Niederstetten ETHN.pdf"
    ]
}

4.1.5. Beispiele einer "covered charts area" Datei (covered_charts_area.geojson)

Diese Datei ist eine standardkonforme Geo-JSON Datei, was z.B. über die Webseite geojson.io verifiziert werden kann. Als Features enthält diese Datei das abgedeckte Gebiet sowie die Outlines aller darin enthaltenen Charts. Als Properties sind in den Chart-Outlines auch noch einige Parameter des jeweiligen Aerodromes enthalten.

covered charts area 50km
Figure 1. Covered chart area 50km distance from route.

oder

covered charts area bw
Figure 2. Covered chart area BW.

oder

covered charts multi area
Figure 3. Covered chart area for multi-geometries.

5. Verwaltung eines Trip-Kits

TODO:

Die Erzeugung wird derzeit über eine Konfigurationsdatei gesteuert. In der Zukunft soll das durch einen Eingabedialog in der Software ersetzt werden. Die Konfigurationsdatei ist ebenfalls eine JSON-Datei. Das abzudeckende Gebiet kann aus einzelnen Teilen zusammengesetzt werden. Derzeit stehen GeoRectangle, GeoCircle und GeoCorridor zur Verfügung. Die einfachsten Gebiete sind ein jeweils einzelnes GeoRectangle oder ein GeoCircle. Komplexere Gebiete entstehen durch Addition mehrerer Einzelgebiete. Diese müssen auch nicht notwendigerweise zusammenhängend sein.

Der Parameter version bestimmt die Formatversion dieser Datei und darf nicht verändert werden. Das Ausgabeformat für die einzelnen Bilder kann über den Parameter imageFormat festgelegt werden. Dabei stehen die Werte jpg, png, tiff und webp zur Verfügung. Fehlt der Parameter, dann wird webp verwendet. Die TIFF-Version beinhaltet auch noch die Georeferenzierungsinformation und ist damit eigentlich ein Geo-TIFF. Bei den anderen Formaten muss diese Information aus den gegebenen 4 Eckpunkten entnommen werden. Des Weiteren enthält die Bildbeschreibung der TIFF-Version den Namen des jeweiligen Flugplatzes und dessen ICAO-Code.

5.1. Einfaches GeoRectangle Beispiel

{
    "version": "1.0.0",
    "name":"Flying in the Ländle",
    "description": "An area covering Baden-Württemberg",
    "charts": {
        "coveredArea": [
            {
                "type": "GeoRectangle",
                "west": 7.49961623,
                "south": 47.53058632,
                "east": 10.49522706,
                "north": 49.79159732
            }
        ],
        "minInvScale": 50000.0,
        "maxInvScale": 90000.0,
        "imageFormat": "webp"
    }
}

5.2. Komplexes Multi-Geometrie Beispiel

{
    "version": "1.0.0",
    "name": "Hahnweide to Aachen",
    "description": "A trip from Hahnweide to Aachen via Speyer and Koblenz",
    "charts": {
        "coveredArea": [
            {
                "type": "GeoCircle",
                "center": {
                    "longitude": 9.428503758629594,
                    "latitude": 48.631650117670056
                },
                "radius": 50000.0
            },
            {
                "type": "GeoCorridor",
                "points": [
                    {
                        "longitude": 9.428503758629594,
                        "latitude": 48.631650117670056
                    },
                    {
                        "longitude": 8.443524303116453,
                        "latitude": 49.31244357731459
                    },
                    {
                        "longitude": 7.639419518846692,
                        "latitude": 50.33398675841019
                    },
                    {
                        "longitude": 6.186308779144034,
                        "latitude": 50.823171895761845
                    }
                ],
                "distance": 30000.0
            },
            {
                "type": "GeoCircle",
                "center": {
                    "longitude": 6.186308779144034,
                    "latitude": 50.823171895761845
                },
                "radius": 80000.0
            },
            {
                "type": "GeoRectangle",
                "west": 8.5,
                "south": 50.0,
                "east": 9.5,
                "north": 50.5
            }
        ],
        "minInvScale": 50000.0,
        "maxInvScale": 90000.0,
        "imageFormat": "webp"
    }
}